home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
edu
/
kana
/
src
/
mk_data.bas
< prev
next >
Wrap
BASIC Source File
|
1995-07-12
|
7KB
|
182 lines
1000 '====================================================================
1010 '
1020 ' 『平仮名・片仮名の練習』データ作成
1030 ' by H.AOE 1995.07.06
1040 '====================================================================
1050 '
1060 *初期設定1
1070 COLOR 7,0,7,0:CLS '画面クリア
1080 DEFINT A-Z '整数変数に設定
1090 CLEAR,,,,,300000:DEF FONT"教科書体 24ドット" '文字フォント設定
1100 SCREEN 0 :SCREEN@ 0 'グラフィック1画面
1110 WINDOW(0,0)-(639,479):VIEW(0,0)-(639,479) '16色モード
1120 MOUSE 0:MOUSE 1,400,80,0 'マウス初期化
1130 ON MOUSE(1) GOSUB *マウス位置読み取り 'マウス割り込み設定
1140 KANA=0 '0:平仮名 1:片仮名
1150 '
1160 *画面初期化
1170 FOR A=0 TO 15
1180 PALETTE A,[0,0,0]
1190 NEXT
1200 VIEW(0,0)-(639,479),%2
1210 LOAD@"TIFF\TITLE_0.TIF", ( 20, 20)
1220 LOAD@"TIFF\MAIN_WIN.TIF",( 20,100)
1230 LOAD@"TIFF\GOJU_0.TIF", (420, 60)
1240 LOAD@"TIFF\RW_0.TIF", (420, 20)
1250 LOAD@"TIFF\EXIT_B.TIF", (540, 20)
1260 GOSUB *PALETTE
1270 MOUSE 1,,,1
1280 '
1290 *START
1300 '--------------------------------------------------------------------
1310 ' タイトル表示 ( 20, 20)-(399, 79)
1320 ' メインウインドウ ( 40,120)-(379,439)
1330 ' 五十音ボタン (420, 60)-(619,459)
1340 ' 読み書きスイッチ (420, 20)-(529, 49)
1350 ' 終了ボタン (540, 20)-(619, 49)
1360 ' 変数の初期化 KANA= 0:平仮名 1:片仮名
1370 ' LOOP= 1:同一文字種 2:文字種を変更する
1380 ' MOJI= 0:「あ」 ~ 45:「ん」
1390 ' GOJU$:平仮名または片仮名の五十音を入れておく
1400 '--------------------------------------------------------------------
1410 LOOP=1
1420 MOJI=0
1430 ON KANA+1 GOSUB *平仮名,*片仮名
1440 GOSUB *フォント表示
1450 '
1460 *MAIN
1470 WHILE MOUSE(2,0)=0:WEND
1480 MX=MOUSE(4,0):MY=MOUSE(5,0)
1490 IF MX>540 AND MX<619 AND MY> 20 AND MY< 49 THEN
1500 GOTO *EXIT
1510 ELSE IF MX> 20 AND MX<399 AND MY> 20 AND MY< 79 THEN
1520 KANA=ABS(KANA-1):LOOP=2
1530 ELSE IF MX>420 AND MX<619 AND MY> 60 AND MY<459 THEN
1540 GOSUB *文字選択
1550 ELSE IF MX> 40 AND MX<379 AND MY>120 AND MY<439 THEN
1560 GOSUB *筆順データ作成
1570 ENDIF
1580 ON LOOP GOTO *MAIN,*START
1590 '
1600 *EXIT
1610 CLOSE
1620 END
1630 '
1640 *文字選択
1650 '--------------------------------------------------------------------
1660 ' 五十音ボタンで選ばれた文字を0~45の番号に変換し、MOJIに代入する。
1670 '--------------------------------------------------------------------
1680 BX=(MX-420) \ 40:BY=(MY-60) \ 40
1690 IF (BX=1 OR BX=3) AND (BY=7 OR BY=9) THEN RETURN
1700 MOJI=BX+BY*5
1710 IF MOJI=37 THEN MOJI=36
1720 IF MOJI>38 THEN MOJI=MOJI-2
1730 IF MOJI=45 THEN MOJI=44 ELSE IF MOJI=47 THEN MOJI=45
1740 GOSUB *フォント表示
1750 RETURN
1760 '
1770 *フォント表示
1780 '--------------------------------------------------------------------
1790 ' 教科書体24ドットで文字の雛形を表示する。
1800 '--------------------------------------------------------------------
1810 LINE(42,122)-(377,437),PSET,%15,BF
1820 SYMBOL(66,136),KMID$(GOJU$,MOJI+1,1),18,18,%7
1830 RETURN
1840 '
1850 *平仮名
1860 '--------------------------------------------------------------------
1870 ' データファイル、画面、文字変数を平仮名用に初期化する。
1880 '--------------------------------------------------------------------
1890 CLOSE
1900 LOAD@"TIFF\TITLE_0.TIF", ( 20, 20)
1910 LOAD@"TIFF\GOJU_0.TIF", (420, 60)
1920 OPEN"R",#1,"(4)HIRAGANA.DAT"
1930 FIELD #1,2 AS PX$,2 AS PY$
1940 GOJU$="あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん"
1950 RETURN
1960 '
1970 *片仮名
1980 '--------------------------------------------------------------------
1990 ' データファイル、画面、文字変数を片仮名用に初期化する。
2000 '--------------------------------------------------------------------
2010 CLOSE
2020 LOAD@"TIFF\TITLE_1.TIF", ( 20, 20)
2030 LOAD@"TIFF\GOJU_1.TIF", (420, 60)
2040 OPEN"R",#1,"(4)KATAKANA.DAT"
2050 FIELD #1,2 AS PX$,2 AS PY$
2060 GOJU$="アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン"
2070 RETURN
2080 '
2090 *筆順データ作成
2100 '--------------------------------------------------------------------
2110 ' メインウインドウ内で左クリックされると、このルーチンに入る。
2120 ' 最初に左クリックされた座標を、ランダムファイルの MOJI*800+1 番目
2130 ' のレコードに記録する。以後、マウスが移動する度に、その座標を次のレコ
2140 ' ードに記録する。マウスの左ボタンを開放するまでを1画とし、左クリッ
2150 ' クで次の画を書く。右クリックでこのルーチンから抜ける。1文字分3200
2160 ' バイトのうち残りバイトは "00" で埋める。
2170 ' ADR: MOJI*800+ADR 番目のレコードに、座標を記録する。
2180 '--------------------------------------------------------------------
2190 MOUSE 4,40,120,379,439
2200 ADR=1
2210 GOSUB *マウス位置書き込み
2220 WHILE MOUSE(2,1)=0
2230 IF MOUSE(2,0) THEN
2240 MX=MOUSE(4,0):MY=MOUSE(5,0)
2250 GOSUB *マウス位置書き込み
2260 MOUSE(1) ON
2270 WHILE MOUSE(2,0):WEND
2280 MOUSE(1) OFF
2290 ENDIF
2300 WEND
2310 WHILE ADR<=800
2320 LSET PX$=MKI$(0)
2330 LSET PY$=MKI$(0)
2340 PUT#1,MOJI*800+ADR
2350 ADR=ADR+1
2360 WEND
2370 MOUSE 4,0,0,639,479
2380 MOJI=MOJI+1
2390 IF MOJI=46 THEN MOJI=0
2400 GOSUB *フォント表示
2410 RETURN
2420 '
2430 *マウス位置読み取り
2440 '--------------------------------------------------------------------
2450 ' マウスの移動による割り込み処理ルーチン
2460 '--------------------------------------------------------------------
2470 IF MOUSE(2,0)=0 THEN RETURN
2480 MX=MOUSE(0):MY=MOUSE(1)
2490 GOSUB *マウス位置書き込み
2500 RETURN
2510 '
2520 *マウス位置書き込み
2530 '--------------------------------------------------------------------
2540 ' ランダムファイルに座標を記録する
2550 '--------------------------------------------------------------------
2560 CIRCLE(MX,MY),10,%1,,,,F
2570 LSET PX$=MKI$(MX)
2580 LSET PY$=MKI$(MY)
2590 PUT#1,MOJI*800+ADR
2600 ADR=ADR+1
2610 RETURN
2620 '
2630 *PALETTE
2640 PALETTE 0,[ 0, 0, 0]
2650 PALETTE 1,[ 0, 0,240]
2660 PALETTE 2,[128, 0,128]
2670 PALETTE 3,[192,240,176]
2680 PALETTE 4,[208,240,224]
2690 PALETTE 5,[176,240,112]
2700 PALETTE 6,[ 80,160, 48]
2710 PALETTE 7,[128,128,128]
2720 PALETTE 8,[ 64, 64, 64]
2730 PALETTE 9,[ 0,240, 0]
2740 PALETTE 10,[240, 0,192]
2750 PALETTE 11,[240, 0, 0]
2760 PALETTE 12,[240,112,128]
2770 PALETTE 13,[240,240,160]
2780 PALETTE 14,[240,240, 0]
2790 PALETTE 15,[255,255,255]
2800 RETURN